package com.chinairi.mall.model;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 供应商订单生产信息实体类
 * </p>
 * @author 李昌赐
 * @since 2020-12-11
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("SUPPLIER_ORDER_PRODUCE_INFORMATION")
public class SupplierOrderProduceInformation implements Serializable {

    private static final long serialVersionUID = 7465757148408030159L;

    /**
     * 主键ID
     */
    @TableField("DB_ID")
    private String dbId;

    /**
     * 供应商端销售订单id
     */
    @TableField("SALE_ORDER_ID")
    private String saleOrderId;

    /**
     * 电商端实物订单编码
     */
    @TableField("ORDER_NO")
    private String orderNo;

    /**
     * 订货日期
     */
    @TableField("ORDER_GOODS_DATE")
    private Date orderGoodsDate;

    /**
     * 物料编码
     */
    @TableField("MAT_CODE")
    private String matCode;

    /**
     * 订单物料数量
     */
    @TableField("MAT_QTY")
    private BigDecimal matQty;

    /**
     * 物料单价
     */
    @TableField("MAT_PRICE")
    private BigDecimal matPrice;

    /**
     * 交货日期
     */
    @TableField("DELIVERY_DATE")
    private Date deliveryDate;

    /**
     * 当前订单主生产计划编号
     */
    @TableField("PRO_PRODUCT_PLAN_CODE")
    private String proProductPlanCode;

    /**
     * 生产计划计划开始时间
     */
    @TableField("PLAN_START_DATE")
    private Date planStartDate;

    /**
     * 生产计划实际开始时间
     */
    @TableField("ACTUAL_START_DATE")
    private Date actualStartDate;

    /**
     * 生产计划交货期(预计出库时间)
     */
    @TableField("PLAN_DELIVERY_DATE")
    private Date planDeliveryDate;

    /**
     * 产品计划总装时间
     */
    @TableField("PLAN_ASSEMBLY_DATE")
    private Date planAssemblyDate;

    /**
     * 生产计划创建时间
     */
    @TableField("PLAN_CREATE_TIME")
    private Date planCreateTime;

    /**
     * 产品实际总装时间
     */
    @TableField("ACTUAL_ASSEMBLY_DATE")
    private Date actualAssemblyDate;

    /**
     * 产品入检日期（如果是生产入库则取最后一道工序的装配质检时间，如果是成品采购则到货检验）
     */
    @TableField("INSPECTION_DATE")
    private Date inspectionDate;

    /**
     * 主生产计划计划入库日期
     */
    @TableField("PLAN_STORAGE_DATE")
    private Date planStorageDate;

    /**
     * 主生产计划中的物料计划数量、入检数量
     */
    @TableField("MAT_PLAN_QTY")
    private BigDecimal matPlanQty;

    /**
     * 入检数量
     */
    @TableField("WAREHOUSE_INSPECTION_QTY")
    private BigDecimal warehouseInspectionQty;

    /**
     * 合格数量
     */
    @TableField("QUALIFIED_QTY")
    private BigDecimal qualifiedQty;

    /**
     * 实际出库时间（发运单的到货日期）
     */
    @TableField("ACTUAL_STORAGE_DATE")
    private Date actualStorageDate;

    /**
     * 成品出库数量
     */
    @TableField("OTU_STOCK_FINISH_QTY")
    private BigDecimal otuStockFinishQty;

    /**
     * 总装数量
     */
    @TableField("INVENTORY_QTY")
    private BigDecimal inventoryQty;

    /**
     * 创建人
     */
    @TableField("CREATE_USER")
    private String createUser;

    /**
     * 创建时间
     */
    @TableField("CREATE_TIME")
    private Date createTime;

    /**
     * 修改人
     */
    @TableField("UPDATE_USER")
    private String updateUser;

    /**
     * 修改时间
     */
    @TableField("UPDATE_TIME")
    private Date updateTime;

    /**
     * 订单确认时间
     */
    @TableField("ORDER_CONFIRM_DATE")
    private Date orderConfirmDate;

    /**
     * 确认状态，1-待确认，2-同意，99-不同意
     */
    @TableField("CONFIRM_STATUS")
    private String confirmStatus;
}
